搜索 K
Appearance
博客加载中...
Appearance
上文讲了如何自建 Twikoo,但这要求要有个服务器。
而租一个服务器是蛮贵的,没条件的可以考虑用大厂的公益服务,免费搭建 Twikoo。
具体有哪些可以白嫖,可以参考:云函数部署 | Twikoo 文档
这里以 Netlify 为例,讲下大致原理和过程,如果你用其他的也可参考下。
打开 MongoDB AtLas 官网并注册账号。
注:网不太好,可能需魔法才能注册成功。
打开 Database Access 页面,点击 Add New Database User(创建数据库用户)

Authentication Method(认证方法)选 Password(密码验证),然后设置用户名和密码,点 Auto Generate 自动生成一个不含特殊符号的强壮密码并妥善保存:

然后点击 Database User Privileges 下方的 Add Built In Role,Select Role 选择 Atlas Admin:

最后点击右下角的 Add User,即可完成创建。
点击 Add IP Address:

如果你用的是 Vercel / Netlify / Lambda,那么出口地址是不固定的,要设置允许允许所有 IP 地址的连接。点击弹出框的「Allow Access from Anywhere」,或者手动输入 0.0.0.0/0即可。
当然,如果 Twikoo 部署在自己的服务器上,这里可以填入固定 IP 地址。
点击 Confirm 保存。

选择左侧的 Clusters,然后点击右侧的 Build a Cluster:

然后选免费的,够用了:

然后配置下名字,地域,点击右下角的创建:

连接方式选择 Drivers:

然后选 Node,并记录数据库连接字符串,将连接字符串中的 <username>:<password> 修改为刚刚创建的数据库 用户名:密码


Netlify 是一个功能强大的静态网站托管平台,不仅提供了简单的网站部署功能,还集成了许多现代化的开发工具和服务,帮助开发者更高效地构建、部署和管理网站。
你可以理解为它是一个 CDN,可以将网站文件上传上去,然后全球都可以访问你的网站了。
申请并登录 Netlify 账号(可以用 GitHub 账号登录),创建一个 Team:

打开 GitHub,fork 项目 twikoojs/twikoo-netlify 到自己的账号下。
回到 Netlify,点击导入项目:

选择从 GitHub 上导入:

会弹出授权请求,根据选择刚刚 fork 的项目:

然后配置名字:

点击 Add environment variables - New variable,Key 输入 MONGODB_URI,Value 输入前面记录的数据库连接字符串,然后点击 Deploy:

稍微等一点时间,等部署完成后,点击它能看到 “Twikoo 云函数运行正常” 的提示

云函数地址(包含 https:// 前缀和 /.netlify/functions/twikoo 后缀。
例如 https://xxx.netlify.app/.netlify/functions/twikoo)即为环境 id,博客里配置 Twikoo 时要用到。
用了一段时间 Netlify,感觉速度还是慢了点,后来经过 绮曜 的提醒,Vercel 速度就更快一点,所以后面就切换为了 Vercel。
其实 Vercel 本身是被墙了的,绑定自己的域名后才挺快的。
此外
下面分享下相关过程。
打开 Vercel 官网注册账号。
我试着用 GitHub 账号登录,但是失败了❓,后面换的 gmail 邮箱登录。
如果用大陆内邮箱的话,貌似还要验证手机号。
点击此 链接,选择 GitHub:

然后要授权(我这里已经授权了,新用户得选择 Add GitHub Account),然后仓库名自己写一个就行(必须是不存在的仓库名,会帮你新建仓库),然后点击 Create:

然后等待创建完成。在项目页面会显示未配置变量:

进入 Settings:

点击 Environment Variables,添加环境变量 MONGODB_URI,值为前面记录的数据库连接字符串:

进入 Settings - Deployment Protection,设置 Vercel Authentication 为 Disabled,并 Save(否则 Twikoo 发送邮件会失败):

一般来说,设置环境变量后会提示重新部署(Redeploy),点击它,等待重新部署完毕。
等待重新部署完成后,进入 Project,查看 Overview 或者点击 visit,看见 Twikoo 云函数运行正常 的提示,说明部署成功:

你也可以点击上图 Domains 里的网址直接访问:

这个 Vercel Domains(包含 https:// 前缀,例如 https://xxx.vercel.app)就是环境 ID。
由于 Vercel 被墙了,得绑定自己的域名才能正常访问。
打开域名服务商后台,添加一个 DNS 记录
Type: CNAME(Alias)
Name: twikoo
Target hostname: cname.vercel-dns.com
Name:自己随便定义一个,例如我写的是 twikoo,后面 twikoo.peterjxl.com 就是我的环境 ID 了。
目标地址写 cname.vercel-dns.com
然后回到 Vercel,在 Domains 里添加刚刚定义的域名:

配置后,会提示你验证所有权,给出一个新的值:

复制将这个值,回到域名服务商后台,将刚刚填写的 cname.vercel-dns.com 修改为这个值,刷新,就会提示已验证了:

在博客里配置环境 ID 即可,具体可以参考上一篇文章。
运行博客,第一次打开 Twikoo 管理面板会要求设置密码,设置并登录,然后可以开始配置。
我之前用的是自建服务器,如今切换到 Netlify,可以先在面板里导出数据。等迁移完后,再导入:

Twikoo 不支持配置的导入导出,我建议将 Twikoo 的 data 目录全部下载下来,里面的 db.json.0 就是评论数据,而db.json.1 就是你之前做的配置,可以打开它看看之前的配置,然后手动复制下。
个人看法:迁移到 Netlify 后,访问速度慢了一丢丢,没有我之前自建的时候快,但也还能接受。
在 Netlify 上部署 Twikoo 评论系统 | 流动
Mintimate/twikoo-eo:EdgeOne Page 版本。但群友反馈:申请 KV 几个月了都没通过。另一个群友:系统认为你们不像是需要 KV 的,要找客服
Twikoo 作者做的视频教程:Twikoo Vercel 部署教程,含申请 MongoDb 过程
手把手教你在 Hexo 博客部署免费的 Twikoo 评论系统 - 知乎:写的很详细的图文教程
Vercel 部署 Twikoo 评论系统保姆级教程 | 白衣 INK